home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / +look_here_1st!+ / handy_tools / diskmasterii / rexx / dm-vir.dm < prev    next >
Text File  |  1997-07-31  |  3KB  |  135 lines

  1. /* 
  2. ** $VER: DM-Vir.DM 1.1 (13.08.96) (c) Inorix Scripts
  3. ** 
  4. ** Intelligent Viruskiller script for DiskMaster II.
  5. ** It will check for running Virus_Checker v7.18+ or VirusZ II v1.33+.
  6. ** If neither is running, it will start one.
  7. */ 
  8.  
  9. OPTIONS RESULTS
  10.  
  11. /****************************/
  12. /* Add RexxReqTools if      */
  13. /* necessary.               */
  14. /****************************/
  15.  
  16. IF ~SHOW('L','rexxreqtools.library') THEN DO
  17.   ADDLIB('rexxreqtools.library',0,-30)
  18. END
  19. IF ~SHOW('L','rexxtricks.library') THEN DO
  20.   ADDLIB('rexxtricks.library',0,-30)
  21. END
  22.  
  23. /****************************/
  24. /* Get the right DM to talk */
  25. /* to (and the right screen)*/
  26. /****************************/
  27.  
  28. Port=ADDRESS()
  29.  
  30. /****************************/
  31. /* Select Viruskiller to    */
  32. /* run if none found.       */
  33. /****************************/
  34.  
  35. Killer='DH0:VirusKillers/VirusZ'
  36. ktiep='VZ'
  37.  
  38. /****************************/
  39. /* Set some variables to    */
  40. /* make life easier :-)     */
  41. /****************************/
  42.  
  43. NL='0a'x
  44. Title='DM-Vir v1.1'
  45. Tag="rtez_flags=ezreqf_centertext rt_reqpos=reqpos_centerscr rt_pubscrname="||port
  46.  
  47. /****************************/
  48. /* Get file to check        */
  49. /****************************/
  50.  
  51. PARSE ARG DMpath
  52.  
  53. /****************************/
  54. /* Check if VC is running   */
  55. /****************************/
  56.  
  57. tiep='VZ'
  58.  
  59. IF ~SHOW('PORTS','VIRUSZ_II.REXX') THEN DO
  60.   tiep='VC'
  61.   IF ~SHOW('PORTS','Virus_Checker') THEN DO
  62.     CALL FireUp
  63.   END
  64. END
  65.  
  66. SELECT
  67.   WHEN tiep='VC' THEN DO
  68.     ADDRESS 'Virus_Checker'
  69.     'scan' DMpath
  70.     ADDRESS VALUE Port
  71.     IF VCHECK.0.0=0 THEN CALL Okidook
  72.     ELSE DO
  73.       FileBit=FILEPART(VCHECK.1.1)
  74.       Messie=VCHECK.1.2
  75.       CALL NotOK
  76.     END
  77.   END
  78.   WHEN tiep='VZ' THEN DO
  79.     ADDRESS 'VIRUSZ_II.REXX'
  80.     'CHECKFILE 'DMPath' DECREXEC DECRDATA EXTRACT'
  81.     SELECT
  82.       WHEN RC=0 THEN CALL Okidook
  83.       WHEN RC=5 THEN DO
  84.         FileBit=FILEPART(DMPath)
  85.         Messie='A virus'
  86.         CALL NotOK
  87.       END
  88.       OTHERWISE DO
  89.         CALL SomeFault
  90.       END
  91.     END
  92.   END
  93.   OTHERWISE DO
  94.     NOP
  95.   END
  96. END
  97.  
  98. keuze=rtezrequest(Showtext,Gadgets,Title,Tag,)
  99. IF (keuze=1 & beet~=0) THEN DO
  100.   sure=rtezrequest('Are you sure you want to delete:'NL||DMPath,'_No|_Yes',Title,Tag,)
  101.   IF sure=0 THEN DO
  102.     'delete 'DMPath
  103.   END
  104. END
  105. EXIT
  106.  
  107. Okidook:
  108.   ShowText='File OK'
  109.   Gadgets="_OK|O_K"
  110.   beet=0
  111. RETURN
  112.  
  113. NotOK:
  114.   Gadgets='_Delete|_Quit'
  115.   ShowText='>>>> ALERT <<<<'
  116.   ShowText=ShowText||NL||FileBit
  117.   ShowText=ShowText||NL||'contains 'Messie
  118.   beet=1
  119. RETURN
  120.  
  121. SomeFault:
  122.   ShowText='Something went wrong!'NL'File NOT checked!'
  123.   Gadgets="_OK|O_K"
  124.   beet=0
  125. RETURN
  126.  
  127.  
  128. FireUp:
  129.   ADDRESS COMMAND 'Run 'Killer 'CX_POPUP=NO'
  130.   DO 5 WHILE ~SHOW('PORTS','VIRUSZ_II.REXX')
  131.     ADDRESS COMMAND 'WAITFORPORT VIRUSZ_II.REXX'
  132.   END
  133.   tiep=ktiep
  134. RETURN
  135.